package main

import "fmt"

type S struct {
	i int
}

type I interface {
	Get() int
	Put(int)
}

func main() {
	var s S;
	f(&s);
}

func (p *S) Get() int {
	return p.i
}

func (p *S)Put(m int) {
	p.i = m;
}
func f(i I) {
	fmt.Println(i.Get())
	i.Put(7)
}
